import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
data = pd.read_excel('project-dataset.xlsx')
data.head()
| Index | libellé index | _2022_08 | _2022_07 | _2022_06 | _2022_05 | _2022_04 | _2022_03 | _2022_02 | _2022_01 | ... | _2000_10 | _2000_09 | _2000_08 | _2000_07 | _2000_06 | _2000_05 | _2000_04 | _2000_03 | _2000_02 | _2000_01 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 1 | Règlements de compte entre malfaiteurs | 14 | 16 | 13 | 15 | 5 | 15 | 17 | 5 | ... | 8 | 8 | 6 | 5 | 12 | 5 | 2 | 9 | 5 | 11 |
| 1 | 2 | Homicides pour voler et à l'occasion de vols | 2 | 3 | 3 | 4 | 3 | 4 | 3 | 2 | ... | 3 | 4 | 9 | 5 | 4 | 4 | 7 | 6 | 5 | 2 |
| 2 | 3 | Homicides pour d'autres motifs | 88 | 79 | 65 | 91 | 70 | 93 | 56 | 79 | ... | 84 | 82 | 74 | 75 | 62 | 77 | 76 | 70 | 96 | 60 |
| 3 | 4 | Tentatives d'homicides pour voler et à l'occas... | 15 | 14 | 9 | 9 | 8 | 8 | 9 | 25 | ... | 14 | 5 | 8 | 10 | 14 | 14 | 5 | 9 | 10 | 7 |
| 4 | 5 | Tentatives homicides pour d'autres motifs | 315 | 315 | 373 | 339 | 285 | 321 | 247 | 252 | ... | 87 | 95 | 68 | 101 | 85 | 106 | 63 | 104 | 91 | 65 |
5 rows × 274 columns
data.shape
(107, 274)
data.columns
Index(['Index', 'libellé index', '_2022_08', '_2022_07', '_2022_06',
'_2022_05', '_2022_04', '_2022_03', '_2022_02', '_2022_01',
...
'_2000_10', '_2000_09', '_2000_08', '_2000_07', '_2000_06', '_2000_05',
'_2000_04', '_2000_03', '_2000_02', '_2000_01'],
dtype='object', length=274)
data['libellé index']
0 Règlements de compte entre malfaiteurs
1 Homicides pour voler et à l'occasion de vols
2 Homicides pour d'autres motifs
3 Tentatives d'homicides pour voler et à l'occas...
4 Tentatives homicides pour d'autres motifs
...
102 Infractions à l'exercice d'une profession règl...
103 Infractions au droit de l'urbanisme et de la c...
104 Fraudes fiscales
105 Autres délits économiques et financiers
106 Autres délits
Name: libellé index, Length: 107, dtype: object
#example of importing one sheet
from pandas import read_excel
my_sheet = 'France_Métro'
file_name = 'project-dataset.xlsx'
df_francemetro = read_excel(file_name, sheet_name = my_sheet)
print(df_francemetro.head())
Index libellé index _2022_08 \ 0 1 Règlements de compte entre malfaiteurs 11 1 2 Homicides pour voler et à l'occasion de vols 0 2 3 Homicides pour d'autres motifs 81 3 4 Tentatives d'homicides pour voler et à l'occas... 3 4 5 Tentatives homicides pour d'autres motifs 263 _2022_07 _2022_06 _2022_05 _2022_04 _2022_03 _2022_02 _2022_01 ... \ 0 15 8 12 5 15 14 5 ... 1 3 3 1 3 3 1 2 ... 2 66 51 77 63 78 46 70 ... 3 10 6 7 0 3 8 15 ... 4 268 308 252 241 287 208 205 ... _1996_10 _1996_09 _1996_08 _1996_07 _1996_06 _1996_05 _1996_04 \ 0 4 7 9 10 7 5 6 1 9 11 7 16 12 6 13 2 72 56 62 90 99 68 72 3 16 13 22 26 17 11 7 4 102 61 72 109 91 92 75 _1996_03 _1996_02 _1996_01 0 8 7 8 1 10 11 12 2 75 55 69 3 15 12 9 4 89 66 68 [5 rows x 322 columns]
#create a ile de france dataframe
# 8 departments 75, 77, 78, 91, 92, 93, 94, 95
paris_sheet = '75'
df_paris = read_excel(file_name, sheet_name = paris_sheet)
print(df_paris.head())
seineetmarne_sheet = '77'
df_seineetmarne = read_excel(file_name, sheet_name = seineetmarne_sheet)
print(df_seineetmarne.head())
yvelines_sheet = '78'
df_yvelines = read_excel(file_name, sheet_name = yvelines_sheet)
print(df_yvelines.head())
essonne_sheet = '91'
df_essonne = read_excel(file_name, sheet_name = essonne_sheet)
print(df_essonne.head())
hautsdeseine_sheet = '92'
df_hautsdeseine = read_excel(file_name, sheet_name = hautsdeseine_sheet)
print(df_hautsdeseine.head())
seinesaintdenis_sheet = '93'
df_seinesaintdenis = read_excel(file_name, sheet_name = seinesaintdenis_sheet)
print(df_seinesaintdenis.head())
valdemarne_sheet = '94'
df_valdemarne = read_excel(file_name, sheet_name = valdemarne_sheet)
print(df_valdemarne.head())
valdoise_sheet = '95'
df_valdoise = read_excel(file_name, sheet_name = valdoise_sheet)
print(df_valdoise.head())
Index libellé index _2022_08 \ 0 1 Règlements de compte entre malfaiteurs 0 1 2 Homicides pour voler et à l'occasion de vols 0 2 3 Homicides pour d'autres motifs 5 3 4 Tentatives d'homicides pour voler et à l'occas... 0 4 5 Tentatives homicides pour d'autres motifs 7 _2022_07 _2022_06 _2022_05 _2022_04 _2022_03 _2022_02 _2022_01 ... \ 0 0 0 1 0 0 0 1 ... 1 0 0 0 0 0 0 0 ... 2 3 4 9 3 2 1 3 ... 3 0 1 1 0 0 0 0 ... 4 20 22 10 12 9 9 11 ... _1996_10 _1996_09 _1996_08 _1996_07 _1996_06 _1996_05 _1996_04 \ 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 1 2 5 4 2 4 6 6 4 3 2 1 2 0 1 1 0 4 7 7 4 10 8 6 4 _1996_03 _1996_02 _1996_01 0 0 0 0 1 0 1 2 2 3 4 3 3 0 0 1 4 7 10 3 [5 rows x 322 columns] Index libellé index _2022_08 \ 0 1 Règlements de compte entre malfaiteurs 0 1 2 Homicides pour voler et à l'occasion de vols 0 2 3 Homicides pour d'autres motifs 1 3 4 Tentatives d'homicides pour voler et à l'occas... 0 4 5 Tentatives homicides pour d'autres motifs 7 _2022_07 _2022_06 _2022_05 _2022_04 _2022_03 _2022_02 _2022_01 ... \ 0 0 0 0 0 0 0 1 ... 1 0 0 0 0 0 0 0 ... 2 1 0 1 0 0 1 3 ... 3 0 0 0 0 0 0 0 ... 4 2 4 7 3 4 5 7 ... _1996_10 _1996_09 _1996_08 _1996_07 _1996_06 _1996_05 _1996_04 \ 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 2 6 0 1 1 0 0 1 3 1 0 0 1 0 0 0 4 4 3 3 6 0 0 3 _1996_03 _1996_02 _1996_01 0 1 0 0 1 0 0 0 2 3 1 4 3 0 0 0 4 6 3 4 [5 rows x 322 columns] Index libellé index _2022_08 \ 0 1 Règlements de compte entre malfaiteurs 0 1 2 Homicides pour voler et à l'occasion de vols 0 2 3 Homicides pour d'autres motifs 2 3 4 Tentatives d'homicides pour voler et à l'occas... 0 4 5 Tentatives homicides pour d'autres motifs 0 _2022_07 _2022_06 _2022_05 _2022_04 _2022_03 _2022_02 _2022_01 ... \ 0 0 0 0 0 0 0 0 ... 1 0 0 0 0 1 0 0 ... 2 0 0 3 0 1 1 0 ... 3 0 0 0 0 0 0 0 ... 4 4 2 8 2 0 3 3 ... _1996_10 _1996_09 _1996_08 _1996_07 _1996_06 _1996_05 _1996_04 \ 0 0 0 0 0 0 0 0 1 0 0 0 3 0 0 1 2 2 0 1 1 4 5 5 3 0 1 0 0 0 1 0 4 4 1 0 0 8 5 2 _1996_03 _1996_02 _1996_01 0 0 1 0 1 0 1 0 2 1 1 1 3 0 1 0 4 2 2 2 [5 rows x 322 columns] Index libellé index _2022_08 \ 0 1 Règlements de compte entre malfaiteurs 0 1 2 Homicides pour voler et à l'occasion de vols 0 2 3 Homicides pour d'autres motifs 2 3 4 Tentatives d'homicides pour voler et à l'occas... 0 4 5 Tentatives homicides pour d'autres motifs 8 _2022_07 _2022_06 _2022_05 _2022_04 _2022_03 _2022_02 _2022_01 ... \ 0 0 0 0 0 0 0 0 ... 1 0 0 0 0 0 0 0 ... 2 3 1 2 0 2 0 0 ... 3 0 0 0 0 0 1 0 ... 4 4 10 5 4 5 5 1 ... _1996_10 _1996_09 _1996_08 _1996_07 _1996_06 _1996_05 _1996_04 \ 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 2 3 2 4 0 2 1 1 3 0 0 0 0 1 1 0 4 9 2 1 7 4 3 4 _1996_03 _1996_02 _1996_01 0 0 0 0 1 0 0 0 2 1 3 2 3 0 0 0 4 7 2 7 [5 rows x 322 columns] Index libellé index _2022_08 \ 0 1 Règlements de compte entre malfaiteurs 0 1 2 Homicides pour voler et à l'occasion de vols 0 2 3 Homicides pour d'autres motifs 1 3 4 Tentatives d'homicides pour voler et à l'occas... 0 4 5 Tentatives homicides pour d'autres motifs 7 _2022_07 _2022_06 _2022_05 _2022_04 _2022_03 _2022_02 _2022_01 ... \ 0 1 0 0 1 0 0 0 ... 1 0 0 0 0 0 0 0 ... 2 3 0 1 2 3 0 2 ... 3 0 1 0 0 0 0 0 ... 4 11 3 4 10 7 4 9 ... _1996_10 _1996_09 _1996_08 _1996_07 _1996_06 _1996_05 _1996_04 \ 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 2 1 3 1 1 3 0 4 3 0 0 0 3 3 0 0 4 4 1 4 2 7 1 8 _1996_03 _1996_02 _1996_01 0 1 0 0 1 0 0 0 2 3 0 1 3 0 0 0 4 7 1 1 [5 rows x 322 columns] Index libellé index _2022_08 \ 0 1 Règlements de compte entre malfaiteurs 1 1 2 Homicides pour voler et à l'occasion de vols 0 2 3 Homicides pour d'autres motifs 0 3 4 Tentatives d'homicides pour voler et à l'occas... 1 4 5 Tentatives homicides pour d'autres motifs 9 _2022_07 _2022_06 _2022_05 _2022_04 _2022_03 _2022_02 _2022_01 ... \ 0 1 0 0 0 1 0 0 ... 1 0 0 0 0 0 0 0 ... 2 1 3 1 1 1 0 1 ... 3 3 1 2 0 0 1 0 ... 4 14 22 15 13 21 14 7 ... _1996_10 _1996_09 _1996_08 _1996_07 _1996_06 _1996_05 _1996_04 \ 0 1 0 0 1 0 1 0 1 0 1 0 1 0 0 1 2 0 3 1 3 3 2 1 3 2 0 1 1 0 0 0 4 8 1 0 4 3 5 2 _1996_03 _1996_02 _1996_01 0 0 1 1 1 0 0 1 2 3 2 5 3 0 1 0 4 3 5 6 [5 rows x 322 columns] Index libellé index _2022_08 \ 0 1 Règlements de compte entre malfaiteurs 0 1 2 Homicides pour voler et à l'occasion de vols 0 2 3 Homicides pour d'autres motifs 2 3 4 Tentatives d'homicides pour voler et à l'occas... 0 4 5 Tentatives homicides pour d'autres motifs 12 _2022_07 _2022_06 _2022_05 _2022_04 _2022_03 _2022_02 _2022_01 ... \ 0 0 0 0 0 0 0 0 ... 1 0 0 0 0 0 0 0 ... 2 0 0 1 3 0 1 1 ... 3 0 0 0 0 0 0 1 ... 4 6 10 7 10 8 3 17 ... _1996_10 _1996_09 _1996_08 _1996_07 _1996_06 _1996_05 _1996_04 \ 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 2 7 1 1 3 2 4 0 3 0 2 0 0 0 0 0 4 5 1 1 3 2 3 3 _1996_03 _1996_02 _1996_01 0 0 0 0 1 1 0 0 2 4 1 1 3 1 0 0 4 2 1 2 [5 rows x 322 columns] Index libellé index _2022_08 \ 0 1 Règlements de compte entre malfaiteurs 0 1 2 Homicides pour voler et à l'occasion de vols 0 2 3 Homicides pour d'autres motifs 1 3 4 Tentatives d'homicides pour voler et à l'occas... 0 4 5 Tentatives homicides pour d'autres motifs 15 _2022_07 _2022_06 _2022_05 _2022_04 _2022_03 _2022_02 _2022_01 ... \ 0 0 0 0 1 2 0 0 ... 1 0 0 0 0 0 0 0 ... 2 4 0 1 0 5 2 2 ... 3 1 0 1 0 0 3 2 ... 4 21 12 12 12 12 7 11 ... _1996_10 _1996_09 _1996_08 _1996_07 _1996_06 _1996_05 _1996_04 \ 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 2 0 0 0 1 2 0 1 3 0 0 0 0 0 1 0 4 0 1 3 2 4 2 0 _1996_03 _1996_02 _1996_01 0 0 0 0 1 0 1 0 2 3 1 4 3 0 0 0 4 0 0 3 [5 rows x 322 columns]
#create the ile de france dataframe
#lets try with one month
august2022 = '_2022_08'
#summing august column
sumaugust = df_paris[august2022] + df_seineetmarne[august2022] + df_valdoise[august2022] + df_yvelines[august2022] + df_essonne[august2022] + df_hautsdeseine[august2022] + df_seinesaintdenis[august2022] + df_valdemarne[august2022]
print(sumaugust)
0 1
1 0
2 14
3 1
4 65
...
102 41
103 26
104 20
105 870
106 3629
Name: _2022_08, Length: 107, dtype: int64
#create our dataframe
df_iledefrance_august2022 = pd.DataFrame({"libelle": df_paris['libellé index'], "august 2022":sumaugust})
df_iledefrance_august2022
| libelle | august 2022 | |
|---|---|---|
| 0 | Règlements de compte entre malfaiteurs | 1 |
| 1 | Homicides pour voler et à l'occasion de vols | 0 |
| 2 | Homicides pour d'autres motifs | 14 |
| 3 | Tentatives d'homicides pour voler et à l'occas... | 1 |
| 4 | Tentatives homicides pour d'autres motifs | 65 |
| ... | ... | ... |
| 102 | Infractions à l'exercice d'une profession règl... | 41 |
| 103 | Infractions au droit de l'urbanisme et de la c... | 26 |
| 104 | Fraudes fiscales | 20 |
| 105 | Autres délits économiques et financiers | 870 |
| 106 | Autres délits | 3629 |
107 rows × 2 columns
#create the full 2022 ile de france dataframe
monthsof2022 = ['_2022_01', '_2022_02', '_2022_03', '_2022_04', '_2022_05', '_2022_06', '_2022_07', '_2022_08']
sumofyear = 0
#summing months columns
for month in monthsof2022:
sumofyear = sumofyear + df_paris[month] + df_seineetmarne[month] + df_valdoise[month] + df_yvelines[month] + df_essonne[month] + df_hautsdeseine[month] + df_seinesaintdenis[month] + df_valdemarne[month]
#sumaugust = df_paris[august2022] + df_seineetmarne[august2022] + df_valdoise[august2022] + df_yvelines[august2022] + df_essonne[august2022] + df_hautsdeseine[august2022] + df_seinesaintdenis[august2022] + df_valdemarne[august2022]
print(sumofyear)
0 11
1 1
2 97
3 20
4 548
...
102 391
103 271
104 115
105 8505
106 31303
Length: 107, dtype: int64
#create our dataframe
df_iledefrance_2022 = pd.DataFrame({"Type de delit": df_paris['libellé index'], "Nombre de delits en 2022": sumofyear})
df_iledefrance_2022
| Type de delit | Nombre de delits en 2022 | |
|---|---|---|
| 0 | Règlements de compte entre malfaiteurs | 11 |
| 1 | Homicides pour voler et à l'occasion de vols | 1 |
| 2 | Homicides pour d'autres motifs | 97 |
| 3 | Tentatives d'homicides pour voler et à l'occas... | 20 |
| 4 | Tentatives homicides pour d'autres motifs | 548 |
| ... | ... | ... |
| 102 | Infractions à l'exercice d'une profession règl... | 391 |
| 103 | Infractions au droit de l'urbanisme et de la c... | 271 |
| 104 | Fraudes fiscales | 115 |
| 105 | Autres délits économiques et financiers | 8505 |
| 106 | Autres délits | 31303 |
107 rows × 2 columns
#do the same for the auvergne-rhone-alpes dept
# 12 departments 01, 03, 07, 15, 26, 38, 42, 43, 63, 69, 73, 74
ain_sheet = '01'
df_ain = read_excel(file_name, sheet_name = ain_sheet)
print(df_ain.head())
allier_sheet = '03'
df_allier = read_excel(file_name, sheet_name = allier_sheet)
print(df_allier.head())
ardeche_sheet = '07'
df_ardeche = read_excel(file_name, sheet_name = ardeche_sheet)
print(df_ardeche.head())
cantal_sheet = '15'
df_cantal = read_excel(file_name, sheet_name = cantal_sheet)
print(df_cantal.head())
drome_sheet = '26'
df_drome = read_excel(file_name, sheet_name = drome_sheet)
print(df_drome.head())
isere_sheet = '38'
df_isere = read_excel(file_name, sheet_name = isere_sheet)
print(df_isere.head())
loire_sheet = '42'
df_loire = read_excel(file_name, sheet_name = loire_sheet)
print(df_loire.head())
hauteloire_sheet = '43'
df_hauteloire = read_excel(file_name, sheet_name = hauteloire_sheet)
print(df_hauteloire.head())
puydedome_sheet = '63'
df_puydedome = read_excel(file_name, sheet_name = puydedome_sheet)
print(df_puydedome.head())
rhone_sheet = '69'
df_rhone = read_excel(file_name, sheet_name = rhone_sheet)
print(df_rhone.head())
savoie_sheet = '73'
df_savoie = read_excel(file_name, sheet_name = savoie_sheet)
print(df_savoie.head())
hautesavoie_sheet = '74'
df_hautesavoie = read_excel(file_name, sheet_name = hautesavoie_sheet)
print(df_hautesavoie.head())
Index libellé index _2022_08 \ 0 1 Règlements de compte entre malfaiteurs 0 1 2 Homicides pour voler et à l'occasion de vols 0 2 3 Homicides pour d'autres motifs 0 3 4 Tentatives d'homicides pour voler et à l'occas... 0 4 5 Tentatives homicides pour d'autres motifs 0 _2022_07 _2022_06 _2022_05 _2022_04 _2022_03 _2022_02 _2022_01 ... \ 0 0 0 0 0 0 0 0 ... 1 0 0 0 0 0 0 0 ... 2 3 0 0 1 0 0 0 ... 3 1 0 0 0 0 0 0 ... 4 4 0 1 1 0 1 0 ... _1996_10 _1996_09 _1996_08 _1996_07 _1996_06 _1996_05 _1996_04 \ 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 2 1 1 1 0 1 0 3 3 0 0 0 0 0 0 0 4 0 0 0 1 0 0 1 _1996_03 _1996_02 _1996_01 0 0 0 0 1 0 0 0 2 0 0 0 3 1 0 0 4 0 1 0 [5 rows x 322 columns] Index libellé index _2022_08 \ 0 1 Règlements de compte entre malfaiteurs 0 1 2 Homicides pour voler et à l'occasion de vols 0 2 3 Homicides pour d'autres motifs 0 3 4 Tentatives d'homicides pour voler et à l'occas... 0 4 5 Tentatives homicides pour d'autres motifs 1 _2022_07 _2022_06 _2022_05 _2022_04 _2022_03 _2022_02 _2022_01 ... \ 0 0 0 0 0 0 0 0 ... 1 0 0 0 0 0 0 0 ... 2 0 0 0 0 0 0 0 ... 3 0 0 0 0 0 0 0 ... 4 1 8 3 0 0 5 1 ... _1996_10 _1996_09 _1996_08 _1996_07 _1996_06 _1996_05 _1996_04 \ 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 2 1 0 0 0 2 0 0 3 0 0 0 1 0 0 0 4 1 1 0 2 0 1 1 _1996_03 _1996_02 _1996_01 0 0 0 0 1 0 0 0 2 0 1 0 3 0 0 0 4 0 0 0 [5 rows x 322 columns] Index libellé index _2022_08 \ 0 1 Règlements de compte entre malfaiteurs 0 1 2 Homicides pour voler et à l'occasion de vols 0 2 3 Homicides pour d'autres motifs 1 3 4 Tentatives d'homicides pour voler et à l'occas... 0 4 5 Tentatives homicides pour d'autres motifs 0 _2022_07 _2022_06 _2022_05 _2022_04 _2022_03 _2022_02 _2022_01 ... \ 0 0 0 0 0 0 0 0 ... 1 0 0 0 0 0 0 0 ... 2 0 1 0 0 0 1 0 ... 3 0 0 0 0 0 0 0 ... 4 1 0 0 1 1 0 0 ... _1996_10 _1996_09 _1996_08 _1996_07 _1996_06 _1996_05 _1996_04 \ 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 2 1 0 0 1 0 0 0 3 0 0 0 0 0 0 0 4 0 1 0 0 0 0 0 _1996_03 _1996_02 _1996_01 0 0 0 0 1 0 0 0 2 0 0 0 3 0 0 0 4 0 1 0 [5 rows x 322 columns] Index libellé index _2022_08 \ 0 1 Règlements de compte entre malfaiteurs 0 1 2 Homicides pour voler et à l'occasion de vols 0 2 3 Homicides pour d'autres motifs 0 3 4 Tentatives d'homicides pour voler et à l'occas... 0 4 5 Tentatives homicides pour d'autres motifs 0 _2022_07 _2022_06 _2022_05 _2022_04 _2022_03 _2022_02 _2022_01 ... \ 0 0 0 0 0 0 0 0 ... 1 0 0 0 0 0 0 0 ... 2 0 0 0 0 0 0 0 ... 3 0 0 0 0 0 0 0 ... 4 0 2 0 0 0 0 1 ... _1996_10 _1996_09 _1996_08 _1996_07 _1996_06 _1996_05 _1996_04 \ 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 2 0 0 0 0 0 0 1 3 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 _1996_03 _1996_02 _1996_01 0 0 0 0 1 0 0 0 2 0 0 0 3 0 0 0 4 0 0 0 [5 rows x 322 columns] Index libellé index _2022_08 \ 0 1 Règlements de compte entre malfaiteurs 0 1 2 Homicides pour voler et à l'occasion de vols 0 2 3 Homicides pour d'autres motifs 0 3 4 Tentatives d'homicides pour voler et à l'occas... 0 4 5 Tentatives homicides pour d'autres motifs 5 _2022_07 _2022_06 _2022_05 _2022_04 _2022_03 _2022_02 _2022_01 ... \ 0 1 0 2 1 0 0 0 ... 1 0 0 0 0 0 0 0 ... 2 1 0 0 0 0 0 0 ... 3 0 0 0 0 0 0 0 ... 4 1 2 1 2 0 0 1 ... _1996_10 _1996_09 _1996_08 _1996_07 _1996_06 _1996_05 _1996_04 \ 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 2 2 0 0 1 1 1 0 3 0 0 0 0 0 0 0 4 1 0 0 1 1 1 0 _1996_03 _1996_02 _1996_01 0 0 0 0 1 0 0 0 2 2 1 1 3 0 0 0 4 0 0 2 [5 rows x 322 columns] Index libellé index _2022_08 \ 0 1 Règlements de compte entre malfaiteurs 2 1 2 Homicides pour voler et à l'occasion de vols 0 2 3 Homicides pour d'autres motifs 1 3 4 Tentatives d'homicides pour voler et à l'occas... 0 4 5 Tentatives homicides pour d'autres motifs 8 _2022_07 _2022_06 _2022_05 _2022_04 _2022_03 _2022_02 _2022_01 ... \ 0 0 0 0 0 0 0 0 ... 1 0 0 0 0 0 0 0 ... 2 0 0 1 0 2 1 1 ... 3 0 0 0 0 0 0 0 ... 4 2 1 3 2 8 3 4 ... _1996_10 _1996_09 _1996_08 _1996_07 _1996_06 _1996_05 _1996_04 \ 0 0 1 0 0 1 0 2 1 0 0 0 0 0 0 0 2 0 2 1 13 2 0 2 3 0 0 0 0 0 0 2 4 5 1 0 0 2 0 1 _1996_03 _1996_02 _1996_01 0 1 2 0 1 0 0 1 2 0 1 0 3 0 0 0 4 5 0 1 [5 rows x 322 columns] Index libellé index _2022_08 \ 0 1 Règlements de compte entre malfaiteurs 0 1 2 Homicides pour voler et à l'occasion de vols 0 2 3 Homicides pour d'autres motifs 0 3 4 Tentatives d'homicides pour voler et à l'occas... 0 4 5 Tentatives homicides pour d'autres motifs 1 _2022_07 _2022_06 _2022_05 _2022_04 _2022_03 _2022_02 _2022_01 ... \ 0 0 0 0 0 0 0 0 ... 1 0 0 0 0 0 0 0 ... 2 1 0 1 0 1 0 1 ... 3 0 0 0 0 0 0 1 ... 4 1 4 2 1 1 2 0 ... _1996_10 _1996_09 _1996_08 _1996_07 _1996_06 _1996_05 _1996_04 \ 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 2 2 1 0 1 0 1 1 0 3 0 0 0 1 0 0 1 4 3 1 1 1 1 0 0 _1996_03 _1996_02 _1996_01 0 0 0 0 1 0 0 0 2 0 1 0 3 0 0 0 4 0 1 0 [5 rows x 322 columns] Index libellé index _2022_08 \ 0 1 Règlements de compte entre malfaiteurs 0 1 2 Homicides pour voler et à l'occasion de vols 0 2 3 Homicides pour d'autres motifs 0 3 4 Tentatives d'homicides pour voler et à l'occas... 0 4 5 Tentatives homicides pour d'autres motifs 1 _2022_07 _2022_06 _2022_05 _2022_04 _2022_03 _2022_02 _2022_01 ... \ 0 0 0 0 0 0 0 0 ... 1 0 0 0 0 0 0 0 ... 2 0 0 0 0 0 0 0 ... 3 0 0 0 0 0 0 0 ... 4 1 1 0 0 0 0 0 ... _1996_10 _1996_09 _1996_08 _1996_07 _1996_06 _1996_05 _1996_04 \ 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 3 0 0 0 1 0 0 0 4 0 0 1 1 0 0 0 _1996_03 _1996_02 _1996_01 0 0 0 0 1 0 0 0 2 0 0 0 3 0 0 0 4 0 0 0 [5 rows x 322 columns] Index libellé index _2022_08 \ 0 1 Règlements de compte entre malfaiteurs 0 1 2 Homicides pour voler et à l'occasion de vols 0 2 3 Homicides pour d'autres motifs 1 3 4 Tentatives d'homicides pour voler et à l'occas... 0 4 5 Tentatives homicides pour d'autres motifs 5 _2022_07 _2022_06 _2022_05 _2022_04 _2022_03 _2022_02 _2022_01 ... \ 0 0 0 0 0 1 0 0 ... 1 0 0 0 0 0 0 0 ... 2 0 1 1 0 0 0 1 ... 3 0 0 0 0 0 0 0 ... 4 6 4 1 4 0 4 1 ... _1996_10 _1996_09 _1996_08 _1996_07 _1996_06 _1996_05 _1996_04 \ 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 2 0 0 0 0 1 1 0 3 0 0 1 0 0 0 0 4 0 0 1 1 0 0 0 _1996_03 _1996_02 _1996_01 0 0 0 0 1 0 0 0 2 0 1 0 3 0 0 0 4 1 0 0 [5 rows x 322 columns] Index libellé index _2022_08 \ 0 1 Règlements de compte entre malfaiteurs 0 1 2 Homicides pour voler et à l'occasion de vols 0 2 3 Homicides pour d'autres motifs 4 3 4 Tentatives d'homicides pour voler et à l'occas... 0 4 5 Tentatives homicides pour d'autres motifs 6 _2022_07 _2022_06 _2022_05 _2022_04 _2022_03 _2022_02 _2022_01 ... \ 0 0 0 1 0 0 0 0 ... 1 0 0 0 0 0 0 0 ... 2 0 5 6 3 1 1 1 ... 3 1 0 0 0 0 0 0 ... 4 4 11 15 6 1 1 3 ... _1996_10 _1996_09 _1996_08 _1996_07 _1996_06 _1996_05 _1996_04 \ 0 0 0 0 1 0 0 0 1 0 1 0 0 2 2 1 2 2 3 1 0 0 2 2 3 0 2 1 1 0 0 0 4 7 3 1 10 3 9 5 _1996_03 _1996_02 _1996_01 0 0 0 0 1 1 0 1 2 2 3 2 3 0 0 0 4 6 1 2 [5 rows x 322 columns] Index libellé index _2022_08 \ 0 1 Règlements de compte entre malfaiteurs 0 1 2 Homicides pour voler et à l'occasion de vols 0 2 3 Homicides pour d'autres motifs 1 3 4 Tentatives d'homicides pour voler et à l'occas... 0 4 5 Tentatives homicides pour d'autres motifs 4 _2022_07 _2022_06 _2022_05 _2022_04 _2022_03 _2022_02 _2022_01 ... \ 0 0 0 0 0 0 1 0 ... 1 0 0 0 0 0 0 0 ... 2 0 2 0 3 10 1 0 ... 3 0 0 0 0 0 0 0 ... 4 0 4 2 0 0 4 1 ... _1996_10 _1996_09 _1996_08 _1996_07 _1996_06 _1996_05 _1996_04 \ 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 2 2 0 0 2 3 0 1 3 0 0 0 0 0 0 0 4 0 0 0 1 0 0 0 _1996_03 _1996_02 _1996_01 0 0 0 0 1 0 0 1 2 0 0 0 3 1 0 0 4 0 1 0 [5 rows x 322 columns] Index libellé index _2022_08 \ 0 1 Règlements de compte entre malfaiteurs 0 1 2 Homicides pour voler et à l'occasion de vols 0 2 3 Homicides pour d'autres motifs 2 3 4 Tentatives d'homicides pour voler et à l'occas... 0 4 5 Tentatives homicides pour d'autres motifs 1 _2022_07 _2022_06 _2022_05 _2022_04 _2022_03 _2022_02 _2022_01 ... \ 0 0 0 0 0 0 0 0 ... 1 0 0 0 0 0 0 0 ... 2 0 0 1 1 3 0 1 ... 3 0 0 0 0 0 0 0 ... 4 2 4 0 4 4 2 2 ... _1996_10 _1996_09 _1996_08 _1996_07 _1996_06 _1996_05 _1996_04 \ 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 2 1 1 1 0 1 1 1 3 0 0 1 0 0 0 0 4 1 0 2 2 2 0 0 _1996_03 _1996_02 _1996_01 0 0 0 0 1 0 0 0 2 0 0 0 3 1 2 0 4 1 0 1 [5 rows x 322 columns]
#create the full 2022 Auvergne rhone alpes dataframe
monthsof2022 = ['_2022_01', '_2022_02', '_2022_03', '_2022_04', '_2022_05', '_2022_06', '_2022_07', '_2022_08']
sumofyear = 0
#summing months columns
for month in monthsof2022:
sumofyear = sumofyear + df_ain[month] + df_allier[month] + df_ardeche[month] + df_cantal[month] + df_drome[month] + df_isere[month] + df_loire[month] + df_hauteloire[month] + df_puydedome[month] + df_rhone[month] + df_savoie[month] + df_hautesavoie[month]
#sumaugust = df_paris[august2022] + df_seineetmarne[august2022] + df_valdoise[august2022] + df_yvelines[august2022] + df_essonne[august2022] + df_hautsdeseine[august2022] + df_seinesaintdenis[august2022] + df_valdemarne[august2022]
print(sumofyear)
0 9
1 0
2 68
3 3
4 196
...
102 88
103 373
104 84
105 907
106 11713
Length: 107, dtype: int64
#create our dataframe
df_auvergnerhonealpes_2022 = pd.DataFrame({"Type de delit": df_paris['libellé index'], "Nombre de delits en 2022": sumofyear})
df_auvergnerhonealpes_2022
| Type de delit | Nombre de delits en 2022 | |
|---|---|---|
| 0 | Règlements de compte entre malfaiteurs | 9 |
| 1 | Homicides pour voler et à l'occasion de vols | 0 |
| 2 | Homicides pour d'autres motifs | 68 |
| 3 | Tentatives d'homicides pour voler et à l'occas... | 3 |
| 4 | Tentatives homicides pour d'autres motifs | 196 |
| ... | ... | ... |
| 102 | Infractions à l'exercice d'une profession règl... | 88 |
| 103 | Infractions au droit de l'urbanisme et de la c... | 373 |
| 104 | Fraudes fiscales | 84 |
| 105 | Autres délits économiques et financiers | 907 |
| 106 | Autres délits | 11713 |
107 rows × 2 columns
#do the same for the provence-alpes-cote-d'azur
# 6 departements 04, 05, 06, 13, 83, 84
alpesdehauteprovence_sheet = '04'
df_alpesdehauteprovence = read_excel(file_name, sheet_name = alpesdehauteprovence_sheet)
print(df_alpesdehauteprovence.head())
hautesalpes_sheet = '05'
df_hautesalpes = read_excel(file_name, sheet_name = hautesalpes_sheet)
print(df_hautesalpes.head())
alpesmaritimes_sheet = '06'
df_alpesmaritimes = read_excel(file_name, sheet_name = alpesmaritimes_sheet)
print(df_alpesmaritimes.head())
bouchesdurhone_sheet = '13'
df_bouchesdurhone = read_excel(file_name, sheet_name = bouchesdurhone_sheet)
print(df_bouchesdurhone.head())
var_sheet = '83'
df_var = read_excel(file_name, sheet_name = var_sheet)
print(df_var.head())
vaucluse_sheet = '84'
df_vaucluse = read_excel(file_name, sheet_name = vaucluse_sheet)
print(df_vaucluse.head())
Index libellé index _2022_08 \ 0 1 Règlements de compte entre malfaiteurs 0 1 2 Homicides pour voler et à l'occasion de vols 0 2 3 Homicides pour d'autres motifs 1 3 4 Tentatives d'homicides pour voler et à l'occas... 0 4 5 Tentatives homicides pour d'autres motifs 1 _2022_07 _2022_06 _2022_05 _2022_04 _2022_03 _2022_02 _2022_01 ... \ 0 0 0 0 0 0 0 0 ... 1 0 0 0 0 0 0 0 ... 2 0 0 0 0 0 0 0 ... 3 0 0 0 0 0 0 0 ... 4 0 0 1 2 1 1 0 ... _1996_10 _1996_09 _1996_08 _1996_07 _1996_06 _1996_05 _1996_04 \ 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 2 0 0 0 1 0 1 0 3 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 _1996_03 _1996_02 _1996_01 0 0 0 0 1 0 0 0 2 0 0 0 3 0 0 0 4 0 0 0 [5 rows x 322 columns] Index libellé index _2022_08 \ 0 1 Règlements de compte entre malfaiteurs 0 1 2 Homicides pour voler et à l'occasion de vols 0 2 3 Homicides pour d'autres motifs 0 3 4 Tentatives d'homicides pour voler et à l'occas... 0 4 5 Tentatives homicides pour d'autres motifs 0 _2022_07 _2022_06 _2022_05 _2022_04 _2022_03 _2022_02 _2022_01 ... \ 0 0 0 0 0 0 3 0 ... 1 0 0 0 0 0 0 0 ... 2 0 0 1 1 0 0 0 ... 3 0 0 0 0 0 0 0 ... 4 0 1 0 0 0 0 0 ... _1996_10 _1996_09 _1996_08 _1996_07 _1996_06 _1996_05 _1996_04 \ 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 2 0 1 0 0 0 0 0 3 0 0 0 0 0 0 0 4 0 1 0 0 0 0 0 _1996_03 _1996_02 _1996_01 0 0 0 0 1 0 0 0 2 1 0 0 3 0 0 0 4 0 0 0 [5 rows x 322 columns] Index libellé index _2022_08 \ 0 1 Règlements de compte entre malfaiteurs 0 1 2 Homicides pour voler et à l'occasion de vols 0 2 3 Homicides pour d'autres motifs 0 3 4 Tentatives d'homicides pour voler et à l'occas... 0 4 5 Tentatives homicides pour d'autres motifs 6 _2022_07 _2022_06 _2022_05 _2022_04 _2022_03 _2022_02 _2022_01 ... \ 0 0 0 1 0 0 0 1 ... 1 0 0 0 0 0 0 0 ... 2 0 1 1 0 1 1 1 ... 3 0 0 0 0 0 1 0 ... 4 1 3 5 8 5 2 2 ... _1996_10 _1996_09 _1996_08 _1996_07 _1996_06 _1996_05 _1996_04 \ 0 0 0 0 0 0 2 0 1 1 0 0 0 0 0 0 2 0 0 3 1 0 3 3 3 0 0 0 0 1 0 0 4 1 3 1 2 2 7 6 _1996_03 _1996_02 _1996_01 0 1 0 0 1 0 0 0 2 4 2 4 3 1 0 0 4 0 1 5 [5 rows x 322 columns] Index libellé index _2022_08 \ 0 1 Règlements de compte entre malfaiteurs 0 1 2 Homicides pour voler et à l'occasion de vols 0 2 3 Homicides pour d'autres motifs 1 3 4 Tentatives d'homicides pour voler et à l'occas... 0 4 5 Tentatives homicides pour d'autres motifs 26 _2022_07 _2022_06 _2022_05 _2022_04 _2022_03 _2022_02 _2022_01 ... \ 0 1 4 4 0 2 6 0 ... 1 0 0 0 0 0 0 1 ... 2 4 1 6 4 9 9 6 ... 3 1 0 0 0 0 0 2 ... 4 27 12 17 15 34 13 7 ... _1996_10 _1996_09 _1996_08 _1996_07 _1996_06 _1996_05 _1996_04 \ 0 0 2 2 1 0 1 1 1 2 0 1 2 0 2 0 2 5 4 2 4 5 5 3 3 1 1 4 0 2 1 0 4 4 4 2 3 3 4 4 _1996_03 _1996_02 _1996_01 0 1 1 2 1 2 0 0 2 4 3 3 3 2 0 0 4 3 6 6 [5 rows x 322 columns] Index libellé index _2022_08 \ 0 1 Règlements de compte entre malfaiteurs 0 1 2 Homicides pour voler et à l'occasion de vols 0 2 3 Homicides pour d'autres motifs 1 3 4 Tentatives d'homicides pour voler et à l'occas... 0 4 5 Tentatives homicides pour d'autres motifs 5 _2022_07 _2022_06 _2022_05 _2022_04 _2022_03 _2022_02 _2022_01 ... \ 0 0 0 0 0 0 3 0 ... 1 0 0 0 0 0 0 0 ... 2 1 1 0 0 0 0 2 ... 3 0 0 0 0 0 0 0 ... 4 3 4 6 1 7 2 8 ... _1996_10 _1996_09 _1996_08 _1996_07 _1996_06 _1996_05 _1996_04 \ 0 1 3 1 2 1 0 3 1 0 1 1 1 1 0 0 2 0 0 4 4 3 2 2 3 4 1 1 0 0 0 0 4 6 0 2 3 4 5 4 _1996_03 _1996_02 _1996_01 0 1 0 0 1 0 2 0 2 6 2 0 3 0 0 0 4 4 2 1 [5 rows x 322 columns] Index libellé index _2022_08 \ 0 1 Règlements de compte entre malfaiteurs 0 1 2 Homicides pour voler et à l'occasion de vols 0 2 3 Homicides pour d'autres motifs 1 3 4 Tentatives d'homicides pour voler et à l'occas... 0 4 5 Tentatives homicides pour d'autres motifs 0 _2022_07 _2022_06 _2022_05 _2022_04 _2022_03 _2022_02 _2022_01 ... \ 0 0 0 0 0 3 0 0 ... 1 0 0 0 0 0 0 0 ... 2 1 0 1 1 1 2 1 ... 3 0 0 0 0 0 0 0 ... 4 4 7 0 3 1 2 0 ... _1996_10 _1996_09 _1996_08 _1996_07 _1996_06 _1996_05 _1996_04 \ 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 2 0 0 0 0 2 0 1 3 0 0 2 1 0 0 0 4 0 1 0 1 1 1 1 _1996_03 _1996_02 _1996_01 0 0 0 0 1 1 1 0 2 1 0 0 3 0 0 0 4 4 2 1 [5 rows x 322 columns]
monthsof2022 = ['_2022_01', '_2022_02', '_2022_03', '_2022_04', '_2022_05', '_2022_06', '_2022_07', '_2022_08']
sumofyear = 0
#summing months columns
for month in monthsof2022:
sumofyear = sumofyear + df_alpesdehauteprovence[month] + df_hautesalpes[month] + df_alpesmaritimes[month] + df_bouchesdurhone[month] + df_var[month] + df_vaucluse[month]
#sumaugust = df_paris[august2022] + df_seineetmarne[august2022] + df_valdoise[august2022] + df_yvelines[august2022] + df_essonne[august2022] + df_hautsdeseine[august2022] + df_seinesaintdenis[august2022] + df_valdemarne[august2022]
print(sumofyear)
0 28
1 1
2 61
3 4
4 243
...
102 58
103 684
104 69
105 435
106 10266
Length: 107, dtype: int64
#create our dataframe
df_provencealpescotedazur_2022 = pd.DataFrame({"Type de delit": df_paris['libellé index'], "Nombre de delits en 2022": sumofyear})
df_provencealpescotedazur_2022
| Type de delit | Nombre de delits en 2022 | |
|---|---|---|
| 0 | Règlements de compte entre malfaiteurs | 28 |
| 1 | Homicides pour voler et à l'occasion de vols | 1 |
| 2 | Homicides pour d'autres motifs | 61 |
| 3 | Tentatives d'homicides pour voler et à l'occas... | 4 |
| 4 | Tentatives homicides pour d'autres motifs | 243 |
| ... | ... | ... |
| 102 | Infractions à l'exercice d'une profession règl... | 58 |
| 103 | Infractions au droit de l'urbanisme et de la c... | 684 |
| 104 | Fraudes fiscales | 69 |
| 105 | Autres délits économiques et financiers | 435 |
| 106 | Autres délits | 10266 |
107 rows × 2 columns
#find a simpler way to create the regions df
monthsof2022 = ['_2022_01', '_2022_02', '_2022_03', '_2022_04', '_2022_05', '_2022_06', '_2022_07', '_2022_08']
sumofyear = 0
#initialize the dept array
hautsdefrancedepts = ['02', '59', '60', '62', '80']
#summing months columns
for month in monthsof2022:
for dept in hautsdefrancedepts :
df_dept = read_excel(file_name, sheet_name = dept)
sumofyear = sumofyear + df_dept[month]
#create our dataframe
df_hautsdefrance_2022 = pd.DataFrame({"Type de delit": df_paris['libellé index'], "Nombre de delits en 2022": sumofyear})
df_hautsdefrance_2022
| Type de delit | Nombre de delits en 2022 | |
|---|---|---|
| 0 | Règlements de compte entre malfaiteurs | 7 |
| 1 | Homicides pour voler et à l'occasion de vols | 4 |
| 2 | Homicides pour d'autres motifs | 47 |
| 3 | Tentatives d'homicides pour voler et à l'occas... | 5 |
| 4 | Tentatives homicides pour d'autres motifs | 144 |
| ... | ... | ... |
| 102 | Infractions à l'exercice d'une profession règl... | 52 |
| 103 | Infractions au droit de l'urbanisme et de la c... | 158 |
| 104 | Fraudes fiscales | 40 |
| 105 | Autres délits économiques et financiers | 260 |
| 106 | Autres délits | 11933 |
107 rows × 2 columns
#find a simpler way to create the regions df
monthsof2022 = ['_2022_01', '_2022_02', '_2022_03', '_2022_04', '_2022_05', '_2022_06', '_2022_07', '_2022_08']
sumofyear = 0
#initialize the dept array
Occitainedepts = ['09', '11', '12', '30', '31', '32', '34', '46', '48', '65']
#summing months columns
for month in monthsof2022:
for dept in Occitainedepts :
df_dept = read_excel(file_name, sheet_name = dept)
sumofyear = sumofyear + df_dept[month]
print(sumofyear)
0 5
1 0
2 52
3 2
4 167
...
102 27
103 497
104 34
105 207
106 7479
Length: 107, dtype: int64
#create our dataframe
df_occitaine_2022 = pd.DataFrame({"Type de delit": df_paris['libellé index'], "Nombre de delits en 2022": sumofyear})
df_occitaine_2022
| Type de delit | Nombre de delits en 2022 | |
|---|---|---|
| 0 | Règlements de compte entre malfaiteurs | 5 |
| 1 | Homicides pour voler et à l'occasion de vols | 0 |
| 2 | Homicides pour d'autres motifs | 52 |
| 3 | Tentatives d'homicides pour voler et à l'occas... | 2 |
| 4 | Tentatives homicides pour d'autres motifs | 167 |
| ... | ... | ... |
| 102 | Infractions à l'exercice d'une profession règl... | 27 |
| 103 | Infractions au droit de l'urbanisme et de la c... | 497 |
| 104 | Fraudes fiscales | 34 |
| 105 | Autres délits économiques et financiers | 207 |
| 106 | Autres délits | 7479 |
107 rows × 2 columns
#Nouvelle acquitaine
monthsof2022 = ['_2022_01', '_2022_02', '_2022_03', '_2022_04', '_2022_05', '_2022_06', '_2022_07', '_2022_08']
sumofyear = 0
#initialize the dept array
nouvelleacquitainedepts = ['16', '17', '19', '23', '24', '33', '40', '47', '64', '79', '86', '87']
#summing months columns
for month in monthsof2022:
for dept in nouvelleacquitainedepts :
df_dept = read_excel(file_name, sheet_name = dept)
sumofyear = sumofyear + df_dept[month]
#create our dataframe
df_nouvelleacquitaine_2022 = pd.DataFrame({"Type de delit": df_paris['libellé index'], "Nombre de delits en 2022": sumofyear})
df_nouvelleacquitaine_2022
| Type de delit | Nombre de delits en 2022 | |
|---|---|---|
| 0 | Règlements de compte entre malfaiteurs | 2 |
| 1 | Homicides pour voler et à l'occasion de vols | 1 |
| 2 | Homicides pour d'autres motifs | 45 |
| 3 | Tentatives d'homicides pour voler et à l'occas... | 3 |
| 4 | Tentatives homicides pour d'autres motifs | 148 |
| ... | ... | ... |
| 102 | Infractions à l'exercice d'une profession règl... | 42 |
| 103 | Infractions au droit de l'urbanisme et de la c... | 248 |
| 104 | Fraudes fiscales | 23 |
| 105 | Autres délits économiques et financiers | 123 |
| 106 | Autres délits | 8433 |
107 rows × 2 columns
#Grand Est
monthsof2022 = ['_2022_01', '_2022_02', '_2022_03', '_2022_04', '_2022_05', '_2022_06', '_2022_07', '_2022_08']
sumofyear = 0
#initialize the dept array
grandestdepts = ['08', '10', '51', '52', '54', '55', '57', '67', '68', '88']
#summing months columns
for month in monthsof2022:
for dept in grandestdepts :
df_dept = read_excel(file_name, sheet_name = dept)
sumofyear = sumofyear + df_dept[month]
#create our dataframe
df_grandest_2022 = pd.DataFrame({"Type de delit": df_paris['libellé index'], "Nombre de delits en 2022": sumofyear})
df_grandest_2022
| Type de delit | Nombre de delits en 2022 | |
|---|---|---|
| 0 | Règlements de compte entre malfaiteurs | 1 |
| 1 | Homicides pour voler et à l'occasion de vols | 3 |
| 2 | Homicides pour d'autres motifs | 34 |
| 3 | Tentatives d'homicides pour voler et à l'occas... | 4 |
| 4 | Tentatives homicides pour d'autres motifs | 119 |
| ... | ... | ... |
| 102 | Infractions à l'exercice d'une profession règl... | 90 |
| 103 | Infractions au droit de l'urbanisme et de la c... | 192 |
| 104 | Fraudes fiscales | 53 |
| 105 | Autres délits économiques et financiers | 157 |
| 106 | Autres délits | 8543 |
107 rows × 2 columns
#Pays de la loire
monthsof2022 = ['_2022_01', '_2022_02', '_2022_03', '_2022_04', '_2022_05', '_2022_06', '_2022_07', '_2022_08']
sumofyear = 0
#initialize the dept array
paysdelaloiredepts = ['44', '49', '53', '72', '85']
#summing months columns
for month in monthsof2022:
for dept in paysdelaloiredepts :
df_dept = read_excel(file_name, sheet_name = dept)
sumofyear = sumofyear + df_dept[month]
#create our dataframe
df_paysdelaloire_2022 = pd.DataFrame({"Type de delit": df_paris['libellé index'], "Nombre de delits en 2022": sumofyear})
df_paysdelaloire_2022
| Type de delit | Nombre de delits en 2022 | |
|---|---|---|
| 0 | Règlements de compte entre malfaiteurs | 6 |
| 1 | Homicides pour voler et à l'occasion de vols | 1 |
| 2 | Homicides pour d'autres motifs | 30 |
| 3 | Tentatives d'homicides pour voler et à l'occas... | 3 |
| 4 | Tentatives homicides pour d'autres motifs | 129 |
| ... | ... | ... |
| 102 | Infractions à l'exercice d'une profession règl... | 13 |
| 103 | Infractions au droit de l'urbanisme et de la c... | 84 |
| 104 | Fraudes fiscales | 13 |
| 105 | Autres délits économiques et financiers | 114 |
| 106 | Autres délits | 4597 |
107 rows × 2 columns
#Normandie
monthsof2022 = ['_2022_01', '_2022_02', '_2022_03', '_2022_04', '_2022_05', '_2022_06', '_2022_07', '_2022_08']
sumofyear = 0
#initialize the dept array
normandiedepts = ['14', '27', '50', '61', '76']
#summing months columns
for month in monthsof2022:
for dept in normandiedepts :
df_dept = read_excel(file_name, sheet_name = dept)
sumofyear = sumofyear + df_dept[month]
#create our dataframe
df_normandie_2022 = pd.DataFrame({"Type de delit": df_paris['libellé index'], "Nombre de delits en 2022": sumofyear})
df_normandie_2022
| Type de delit | Nombre de delits en 2022 | |
|---|---|---|
| 0 | Règlements de compte entre malfaiteurs | 0 |
| 1 | Homicides pour voler et à l'occasion de vols | 1 |
| 2 | Homicides pour d'autres motifs | 14 |
| 3 | Tentatives d'homicides pour voler et à l'occas... | 3 |
| 4 | Tentatives homicides pour d'autres motifs | 74 |
| ... | ... | ... |
| 102 | Infractions à l'exercice d'une profession règl... | 36 |
| 103 | Infractions au droit de l'urbanisme et de la c... | 101 |
| 104 | Fraudes fiscales | 16 |
| 105 | Autres délits économiques et financiers | 87 |
| 106 | Autres délits | 5283 |
107 rows × 2 columns
#Bretagne
monthsof2022 = ['_2022_01', '_2022_02', '_2022_03', '_2022_04', '_2022_05', '_2022_06', '_2022_07', '_2022_08']
sumofyear = 0
#initialize the dept array
bretagnedepts = ['22', '29', '35', '56']
#summing months columns
for month in monthsof2022:
for dept in bretagnedepts :
df_dept = read_excel(file_name, sheet_name = dept)
sumofyear = sumofyear + df_dept[month]
#create our dataframe
df_bretagne_2022 = pd.DataFrame({"Type de delit": df_paris['libellé index'], "Nombre de delits en 2022": sumofyear})
df_bretagne_2022
| Type de delit | Nombre de delits en 2022 | |
|---|---|---|
| 0 | Règlements de compte entre malfaiteurs | 3 |
| 1 | Homicides pour voler et à l'occasion de vols | 3 |
| 2 | Homicides pour d'autres motifs | 24 |
| 3 | Tentatives d'homicides pour voler et à l'occas... | 5 |
| 4 | Tentatives homicides pour d'autres motifs | 54 |
| ... | ... | ... |
| 102 | Infractions à l'exercice d'une profession règl... | 21 |
| 103 | Infractions au droit de l'urbanisme et de la c... | 97 |
| 104 | Fraudes fiscales | 17 |
| 105 | Autres délits économiques et financiers | 63 |
| 106 | Autres délits | 4022 |
107 rows × 2 columns
#Bourgogne franche comté
monthsof2022 = ['_2022_01', '_2022_02', '_2022_03', '_2022_04', '_2022_05', '_2022_06', '_2022_07', '_2022_08']
sumofyear = 0
#initialize the dept array
bourgognefranchecomtedepts = ['21', '25', '39', '58', '70', '71', '89', '90']
#summing months columns
for month in monthsof2022:
for dept in bourgognefranchecomtedepts :
df_dept = read_excel(file_name, sheet_name = dept)
sumofyear = sumofyear + df_dept[month]
#create our dataframe
df_bourgognefranchecomte_2022 = pd.DataFrame({"Type de delit": df_paris['libellé index'], "Nombre de delits en 2022": sumofyear})
df_bourgognefranchecomte_2022
| Type de delit | Nombre de delits en 2022 | |
|---|---|---|
| 0 | Règlements de compte entre malfaiteurs | 4 |
| 1 | Homicides pour voler et à l'occasion de vols | 0 |
| 2 | Homicides pour d'autres motifs | 13 |
| 3 | Tentatives d'homicides pour voler et à l'occas... | 0 |
| 4 | Tentatives homicides pour d'autres motifs | 89 |
| ... | ... | ... |
| 102 | Infractions à l'exercice d'une profession règl... | 17 |
| 103 | Infractions au droit de l'urbanisme et de la c... | 85 |
| 104 | Fraudes fiscales | 23 |
| 105 | Autres délits économiques et financiers | 80 |
| 106 | Autres délits | 3842 |
107 rows × 2 columns
#Centre val de loire
monthsof2022 = ['_2022_01', '_2022_02', '_2022_03', '_2022_04', '_2022_05', '_2022_06', '_2022_07', '_2022_08']
sumofyear = 0
#initialize the dept array
centrevaldeloiredepts = ['18', '28', '36', '37', '41', '45']
#summing months columns
for month in monthsof2022:
for dept in centrevaldeloiredepts :
df_dept = read_excel(file_name, sheet_name = dept)
sumofyear = sumofyear + df_dept[month]
#create our dataframe
df_centrevaldeloire_2022 = pd.DataFrame({"Type de delit": df_paris['libellé index'], "Nombre de delits en 2022": sumofyear})
df_centrevaldeloire_2022
| Type de delit | Nombre de delits en 2022 | |
|---|---|---|
| 0 | Règlements de compte entre malfaiteurs | 2 |
| 1 | Homicides pour voler et à l'occasion de vols | 0 |
| 2 | Homicides pour d'autres motifs | 20 |
| 3 | Tentatives d'homicides pour voler et à l'occas... | 0 |
| 4 | Tentatives homicides pour d'autres motifs | 72 |
| ... | ... | ... |
| 102 | Infractions à l'exercice d'une profession règl... | 17 |
| 103 | Infractions au droit de l'urbanisme et de la c... | 69 |
| 104 | Fraudes fiscales | 12 |
| 105 | Autres délits économiques et financiers | 55 |
| 106 | Autres délits | 3701 |
107 rows × 2 columns
#Corse
monthsof2022 = ['_2022_01', '_2022_02', '_2022_03', '_2022_04', '_2022_05', '_2022_06', '_2022_07', '_2022_08']
sumofyear = 0
#initialize the dept array
corsedepts = ['2A', '2B']
#summing months columns
for month in monthsof2022:
for dept in corsedepts :
df_dept = read_excel(file_name, sheet_name = dept)
sumofyear = sumofyear + df_dept[month]
#create our dataframe
df_corse_2022 = pd.DataFrame({"Type de delit": df_paris['libellé index'], "Nombre de delits en 2022": sumofyear})
df_corse_2022
| Type de delit | Nombre de delits en 2022 | |
|---|---|---|
| 0 | Règlements de compte entre malfaiteurs | 0 |
| 1 | Homicides pour voler et à l'occasion de vols | 0 |
| 2 | Homicides pour d'autres motifs | 8 |
| 3 | Tentatives d'homicides pour voler et à l'occas... | 0 |
| 4 | Tentatives homicides pour d'autres motifs | 12 |
| ... | ... | ... |
| 102 | Infractions à l'exercice d'une profession règl... | 4 |
| 103 | Infractions au droit de l'urbanisme et de la c... | 54 |
| 104 | Fraudes fiscales | 5 |
| 105 | Autres délits économiques et financiers | 15 |
| 106 | Autres délits | 654 |
107 rows × 2 columns
#create the charts
x = range(20)
plt.title('Top 10 des infractions en ile de france en 2022')
plt.barh(x, df_iledefrance_2022.nlargest(20, 'Nombre de delits en 2022').sort_values('Nombre de delits en 2022', ascending = True)['Nombre de delits en 2022'])
#plt.bar(x, df_bretagne_2022.head(10)['Nombre de delits en 2022'])
#set the ticks (on the bar chart)
plt.yticks(x, df_iledefrance_2022.nlargest(20, 'Nombre de delits en 2022')['Type de delit'], rotation='horizontal')
#plt.xticks(x, df_bretagne_2022.head(10)['Type de delit'], rotation='vertical')
#set the labels
plt.ylabel('Type de delit')
plt.xlabel('Nombre de delits')
plt.show()
type(df_bretagne_2022.nlargest(10, "Nombre de delits en 2022")['Type de delit'])
pandas.core.series.Series
#Nombre d'infractions totales en 2022 dataframe
#all the months of 2022 for all departements
df_iledefrance_2022['Nombre de delits en 2022'].sum()
regions = ['Ile-de-France', 'Auvergne-Rhone-Alpes', 'Provence-Alpes-Cote d azur', 'Hauts-de-France',
'Occitaine', 'Nouvelle-Acquitaine', 'Grand Est', 'Pays de la Loire', 'Normandie', 'Bretagne', 'Bourgogne-Franche-Comté', 'Centre-Val de Loire']
nbrofdelits = [df_iledefrance_2022['Nombre de delits en 2022'].sum(),
df_auvergnerhonealpes_2022['Nombre de delits en 2022'].sum(),
df_provencealpescotedazur_2022['Nombre de delits en 2022'].sum(),
df_hautsdefrance_2022['Nombre de delits en 2022'].sum(),
df_occitaine_2022['Nombre de delits en 2022'].sum(),
df_nouvelleacquitaine_2022['Nombre de delits en 2022'].sum(),
df_grandest_2022['Nombre de delits en 2022'].sum(),
df_paysdelaloire_2022['Nombre de delits en 2022'].sum(),
df_normandie_2022['Nombre de delits en 2022'].sum(),
df_bretagne_2022['Nombre de delits en 2022'].sum(),
df_bourgognefranchecomte_2022['Nombre de delits en 2022'].sum(),
df_centrevaldeloire_2022['Nombre de delits en 2022'].sum()
]
#create our dataframe
df_regions_2022 = pd.DataFrame({"Region": regions , "Nombre de delits en 2022": nbrofdelits})
df_regions_2022
| Region | Nombre de delits en 2022 | |
|---|---|---|
| 0 | Ile-de-France | 659980 |
| 1 | Auvergne-Rhone-Alpes | 306181 |
| 2 | Provence-Alpes-Cote d azur | 247514 |
| 3 | Hauts-de-France | 224063 |
| 4 | Occitaine | 181652 |
| 5 | Nouvelle-Acquitaine | 196203 |
| 6 | Grand Est | 175152 |
| 7 | Pays de la Loire | 123410 |
| 8 | Normandie | 104143 |
| 9 | Bretagne | 96949 |
| 10 | Bourgogne-Franche-Comté | 81446 |
| 11 | Centre-Val de Loire | 78099 |
#get the total number of delits
totaldelits = df_regions_2022['Nombre de delits en 2022'].sum()
df_regions_2022['pourcentage'] = (df_regions_2022['Nombre de delits en 2022'] / totaldelits) * 100
df_regions_2022
| Region | Nombre de delits en 2022 | pourcentage | |
|---|---|---|---|
| 0 | Ile-de-France | 659980 | 26.668100 |
| 1 | Auvergne-Rhone-Alpes | 306181 | 12.371989 |
| 2 | Provence-Alpes-Cote d azur | 247514 | 10.001406 |
| 3 | Hauts-de-France | 224063 | 9.053811 |
| 4 | Occitaine | 181652 | 7.340092 |
| 5 | Nouvelle-Acquitaine | 196203 | 7.928060 |
| 6 | Grand Est | 175152 | 7.077443 |
| 7 | Pays de la Loire | 123410 | 4.986682 |
| 8 | Normandie | 104143 | 4.208152 |
| 9 | Bretagne | 96949 | 3.917461 |
| 10 | Bourgogne-Franche-Comté | 81446 | 3.291024 |
| 11 | Centre-Val de Loire | 78099 | 3.155780 |
#create a pie chart from our dataframe
#df_regions_2022.plot(kind = 'pie', y = 'pourcentage', autopct='%1.1f%%', labels = df_regions_2022['Region'])
#define Seaborn color palette to use
colors = sns.color_palette('pastel')[0:5]
plt.title("Pourcentages des delits par région durant l'année 2022")
plt.pie(df_regions_2022['pourcentage'], labels = df_regions_2022['Region'], colors = colors, autopct = '%1.1f%%')
plt.axis('off')
plt.ylabel("")
plt.show()
#representation on the map
import folium
francemap = folium.Map(location=[46.2276, 2.2137], zoom_start=6.15)
francemap
iledefrancemap = folium.Map(location=[48.8566, 2.3522], zoom_start=9.5)
iledefrancemap
#add val d'oise marker
folium.Marker(location=[49.082778,2.131111]).add_to(iledefrancemap)
# Add a marker at the Eiffel Tower with a custom color and popup label
folium.Marker(location=[48.8584, 2.2945],
icon=folium.Icon(color='red'),
popup='Eiffel Tower').add_to(iledefrancemap)
# Add a marker at the Louvre Museum with a custom shape and popup label
folium.Marker(location=[48.8606, 2.3376],
icon=folium.Icon(icon='museum', prefix='fa', color='green'),
popup='Louvre Museum').add_to(iledefrancemap)
# Add a marker at the Notre-Dame Cathedral with a custom size and popup label
folium.Marker(location=[48.8529, 2.3499],
icon=folium.Icon(icon='home', prefix='fa', color='blue', icon_size=[30, 30]),
popup='Notre-Dame Cathedral').add_to(iledefrancemap)
<folium.map.Marker at 0x1bf665ab4c0>
iledefrancemap
import folium
import json
import requests
url = 'https://france-geojson.gregoiredavid.fr/repo/departements.geojson'
response = requests.get(url)
data = response.json()
m = folium.Map(location=[47, 2], zoom_start=6)
def style_function(feature):
return {
'fillColor': 'orange',
'color': 'grey',
'weight': 2,
'dashArray': '5, 5'
}
folium.GeoJson(data=data, style_function=style_function).add_to(m)
m
df_regions_2022
| Region | Nombre de delits en 2022 | pourcentage | |
|---|---|---|---|
| 0 | Ile-de-France | 659980 | 26.668100 |
| 1 | Auvergne-Rhone-Alpes | 306181 | 12.371989 |
| 2 | Provence-Alpes-Cote d azur | 247514 | 10.001406 |
| 3 | Hauts-de-France | 224063 | 9.053811 |
| 4 | Occitaine | 181652 | 7.340092 |
| 5 | Nouvelle-Acquitaine | 196203 | 7.928060 |
| 6 | Grand Est | 175152 | 7.077443 |
| 7 | Pays de la Loire | 123410 | 4.986682 |
| 8 | Normandie | 104143 | 4.208152 |
| 9 | Bretagne | 96949 | 3.917461 |
| 10 | Bourgogne-Franche-Comté | 81446 | 3.291024 |
| 11 | Centre-Val de Loire | 78099 | 3.155780 |
#departements avec leurs coordonnées
departements = {
"Ain": [46.1084, 5.2734],
"Aisne": [49.4297, 3.5428],
"Allier": [46.0942, 3.2140],
"Alpes-de-Haute-Provence": [44.0686, 6.2343],
"Hautes-Alpes": [44.5313, 6.0608],
"Alpes-Maritimes": [43.7384, 7.4246],
"Ardèche": [44.7346, 4.5463],
"Ardennes": [49.4538, 4.3856],
"Ariège": [42.9126, 1.6127],
"Aube": [48.3333, 4.0000],
"Aude": [43.2159, 2.3515],
"Aveyron": [44.2702, 2.4619],
"Bouches-du-Rhône": [43.5333, 5.4333],
"Calvados": [49.1811, -0.3707],
"Cantal": [45.0508, 2.7826],
"Charente": [45.6483, -0.1557],
"Charente-Maritime": [46.0418, -1.1667],
"Cher": [47.1833, 2.4167],
"Corrèze": [45.3450, 1.7429],
"Corse-du-Sud": [41.9167, 8.7389],
"Haute-Corse": [42.3056, 9.1490],
"Côte-d'Or": [47.3265, 5.0415],
"Côtes-d'Armor": [48.3906, -2.8208],
"Creuse": [46.2923, 2.0622],
"Dordogne": [45.0000, 0.7500],
"Doubs": [47.1394, 6.0234],
"Drôme": [44.6941, 5.1565],
"Eure": [49.0069, 1.4263],
"Eure-et-Loir": [48.4467, 1.4897],
"Finistère": [48.2266, -4.1248],
"Gard": [43.8366, 4.3601],
"Haute-Garonne": [43.6045, 1.4442],
"Gers": [43.7578, 0.6172],
"Gironde": [44.8378, -0.5792],
"Hérault": [43.6073, 3.8767],
"Ille-et-Vilaine": [48.1173, -1.6778],
"Indre": [46.8192, 1.6778],
"Indre-et-Loire": [47.2569, 0.6892],
"Isère": [45.1667, 5.7500],
"Jura": [46.7490, 5.657]}
import pandas as pd
# Create the dataframe
df = pd.DataFrame({
'region': ['Ile-de-France', 'Auvergne-Rhone-Alpes', 'Provence-Alpes-Cote d azur', 'Hauts-de-France',
'Occitaine', 'Nouvelle-Acquitaine', 'Grand Est', 'Pays de la Loire', 'Normandie', 'Bretagne',
'Bourgogne-Franche-Comté', 'Centre-Val de Loire'],
'pourcentage': [659980, 306181, 247514, 224063, 181652, 196203, 175152, 123410, 104143, 96949, 81446, 78099]
})
# Define the longitude and latitude values for each department
departments = {
'Ile-de-France': {'lon': 2.36416, 'lat': 48.86611},
'Auvergne-Rhone-Alpes': {'lon': 4.85000, 'lat': 45.75000},
'Provence-Alpes-Cote d azur': {'lon': 6.16667, 'lat': 43.75000},
'Hauts-de-France': {'lon': 2.7800, 'lat': 50.4996},
'Occitaine': {'lon': 1.4437, 'lat': 44.0596},
'Nouvelle-Acquitaine': {'lon': -0.5792, 'lat': 45.6306},
'Grand Est': {'lon': 4.0333, 'lat': 48.8167},
'Pays de la Loire': {'lon': -1.5536, 'lat': 47.4704},
'Normandie': {'lon': 0.6333, 'lat': 49.2500},
'Bretagne': {'lon': -2.7608, 'lat': 48.2020},
'Bourgogne-Franche-Comté': {'lon': 4.5000, 'lat': 47.2500},
'Centre-Val de Loire': {'lon': 1.6840, 'lat': 47.9022}
}
# Add the longitude and latitude columns
df['lon'] = df['region'].apply(lambda x: departments[x]['lon'])
df['lat'] = df['region'].apply(lambda x: departments[x]['lat'])
# Display the dataframe
print(df)
region pourcentage lon lat 0 Ile-de-France 659980 2.36416 48.86611 1 Auvergne-Rhone-Alpes 306181 4.85000 45.75000 2 Provence-Alpes-Cote d azur 247514 6.16667 43.75000 3 Hauts-de-France 224063 2.78000 50.49960 4 Occitaine 181652 1.44370 44.05960 5 Nouvelle-Acquitaine 196203 -0.57920 45.63060 6 Grand Est 175152 4.03330 48.81670 7 Pays de la Loire 123410 -1.55360 47.47040 8 Normandie 104143 0.63330 49.25000 9 Bretagne 96949 -2.76080 48.20200 10 Bourgogne-Franche-Comté 81446 4.50000 47.25000 11 Centre-Val de Loire 78099 1.68400 47.90220
df[df.region == 'Ile-de-France']
| region | pourcentage | lon | lat | |
|---|---|---|---|---|
| 0 | Ile-de-France | 659980 | 2.36416 | 48.86611 |
df
| region | pourcentage | lon | lat | |
|---|---|---|---|---|
| 0 | Ile-de-France | 659980 | 2.36416 | 48.86611 |
| 1 | Auvergne-Rhone-Alpes | 306181 | 4.85000 | 45.75000 |
| 2 | Provence-Alpes-Cote d azur | 247514 | 6.16667 | 43.75000 |
| 3 | Hauts-de-France | 224063 | 2.78000 | 50.49960 |
| 4 | Occitaine | 181652 | 1.44370 | 44.05960 |
| 5 | Nouvelle-Acquitaine | 196203 | -0.57920 | 45.63060 |
| 6 | Grand Est | 175152 | 4.03330 | 48.81670 |
| 7 | Pays de la Loire | 123410 | -1.55360 | 47.47040 |
| 8 | Normandie | 104143 | 0.63330 | 49.25000 |
| 9 | Bretagne | 96949 | -2.76080 | 48.20200 |
| 10 | Bourgogne-Franche-Comté | 81446 | 4.50000 | 47.25000 |
| 11 | Centre-Val de Loire | 78099 | 1.68400 | 47.90220 |
df['code'] = ['75', '69', '13', '59', '31', '33', '67', '44', '14', '35','95', '93']
df
| region | pourcentage | lon | lat | code | |
|---|---|---|---|---|---|
| 0 | Ile-de-France | 659980 | 2.36416 | 48.86611 | 75 |
| 1 | Auvergne-Rhone-Alpes | 306181 | 4.85000 | 45.75000 | 69 |
| 2 | Provence-Alpes-Cote d azur | 247514 | 6.16667 | 43.75000 | 13 |
| 3 | Hauts-de-France | 224063 | 2.78000 | 50.49960 | 59 |
| 4 | Occitaine | 181652 | 1.44370 | 44.05960 | 31 |
| 5 | Nouvelle-Acquitaine | 196203 | -0.57920 | 45.63060 | 33 |
| 6 | Grand Est | 175152 | 4.03330 | 48.81670 | 67 |
| 7 | Pays de la Loire | 123410 | -1.55360 | 47.47040 | 44 |
| 8 | Normandie | 104143 | 0.63330 | 49.25000 | 14 |
| 9 | Bretagne | 96949 | -2.76080 | 48.20200 | 35 |
| 10 | Bourgogne-Franche-Comté | 81446 | 4.50000 | 47.25000 | 95 |
| 11 | Centre-Val de Loire | 78099 | 1.68400 | 47.90220 | 93 |
df['pourcentage'] = df['pourcentage']/10000
df
| region | pourcentage | lon | lat | code | |
|---|---|---|---|---|---|
| 0 | Ile-de-France | 6.599800e-07 | 2.36416 | 48.86611 | 75 |
| 1 | Auvergne-Rhone-Alpes | 3.061810e-07 | 4.85000 | 45.75000 | 69 |
| 2 | Provence-Alpes-Cote d azur | 2.475140e-07 | 6.16667 | 43.75000 | 13 |
| 3 | Hauts-de-France | 2.240630e-07 | 2.78000 | 50.49960 | 59 |
| 4 | Occitaine | 1.816520e-07 | 1.44370 | 44.05960 | 31 |
| 5 | Nouvelle-Acquitaine | 1.962030e-07 | -0.57920 | 45.63060 | 33 |
| 6 | Grand Est | 1.751520e-07 | 4.03330 | 48.81670 | 67 |
| 7 | Pays de la Loire | 1.234100e-07 | -1.55360 | 47.47040 | 44 |
| 8 | Normandie | 1.041430e-07 | 0.63330 | 49.25000 | 14 |
| 9 | Bretagne | 9.694900e-08 | -2.76080 | 48.20200 | 35 |
| 10 | Bourgogne-Franche-Comté | 8.144600e-08 | 4.50000 | 47.25000 | 95 |
| 11 | Centre-Val de Loire | 7.809900e-08 | 1.68400 | 47.90220 | 93 |
import pandas as pd
import folium
import requests
from folium.plugins import HeatMap
from branca.colormap import linear
# Load the data
data = df.reset_index()
url = 'https://france-geojson.gregoiredavid.fr/repo/departements.geojson'
response = requests.get(url)
datajs = response.json()
# Create a colormap
colormap = linear.RdYlBu_11.scale(
data["pourcentage"].min(),
data["pourcentage"].max())
def style_function(feature):
code = feature['properties']['code']
row = data[data['code'] == code]
if not row.empty:
color = colormap(row.iloc[0]['pourcentage'])
return {
'fillColor': color,
'fillOpacity': 0.75,
'color': 'grey',
'weight': 5,
'dashArray': '5, 5'
}
else:
return {
'fillColor': 'white',
'color': 'grey',
'weight': 2,
'dashArray': '5, 5'
}
# Create the map
m = folium.Map(location=[46.2276, 2.2137], zoom_start=6)
# add the title as an HTML object and bind it to the map
title_html = '''
<h4 align="center" style="font-size:20px"><b>Concentration des délits en france durant l'année 2022 </b></h4>
'''
m.get_root().html.add_child(folium.Element(title_html))
# Add the GeoJSON layer
folium.GeoJson(datajs, name='geojson', style_function=style_function).add_to(m)
# Add the colormap to the map
colormap.caption = "Pourcentage"
colormap.add_to(m)
# Display the map
m
#see the colors we can use in the colormap
from branca.colormap import linear
print(dir(linear))
['Accent_03', 'Accent_04', 'Accent_05', 'Accent_06', 'Accent_07', 'Accent_08', 'Blues_03', 'Blues_04', 'Blues_05', 'Blues_06', 'Blues_07', 'Blues_08', 'Blues_09', 'BrBG_03', 'BrBG_04', 'BrBG_05', 'BrBG_06', 'BrBG_07', 'BrBG_08', 'BrBG_09', 'BrBG_10', 'BrBG_11', 'BuGn_03', 'BuGn_04', 'BuGn_05', 'BuGn_06', 'BuGn_07', 'BuGn_08', 'BuGn_09', 'BuPu_03', 'BuPu_04', 'BuPu_05', 'BuPu_06', 'BuPu_07', 'BuPu_08', 'BuPu_09', 'Dark2_03', 'Dark2_04', 'Dark2_05', 'Dark2_06', 'Dark2_07', 'Dark2_08', 'GnBu_03', 'GnBu_04', 'GnBu_05', 'GnBu_06', 'GnBu_07', 'GnBu_08', 'GnBu_09', 'Greens_03', 'Greens_04', 'Greens_05', 'Greens_06', 'Greens_07', 'Greens_08', 'Greens_09', 'Greys_03', 'Greys_04', 'Greys_05', 'Greys_06', 'Greys_07', 'Greys_08', 'Greys_09', 'OrRd_03', 'OrRd_04', 'OrRd_05', 'OrRd_06', 'OrRd_07', 'OrRd_08', 'OrRd_09', 'Oranges_03', 'Oranges_04', 'Oranges_05', 'Oranges_06', 'Oranges_07', 'Oranges_08', 'Oranges_09', 'PRGn_03', 'PRGn_04', 'PRGn_05', 'PRGn_06', 'PRGn_07', 'PRGn_08', 'PRGn_09', 'PRGn_10', 'PRGn_11', 'Paired_03', 'Paired_04', 'Paired_05', 'Paired_06', 'Paired_07', 'Paired_08', 'Paired_09', 'Paired_10', 'Paired_11', 'Paired_12', 'Pastel1_03', 'Pastel1_04', 'Pastel1_05', 'Pastel1_06', 'Pastel1_07', 'Pastel1_08', 'Pastel1_09', 'Pastel2_03', 'Pastel2_04', 'Pastel2_05', 'Pastel2_06', 'Pastel2_07', 'Pastel2_08', 'PiYG_03', 'PiYG_04', 'PiYG_05', 'PiYG_06', 'PiYG_07', 'PiYG_08', 'PiYG_09', 'PiYG_10', 'PiYG_11', 'PuBuGn_03', 'PuBuGn_04', 'PuBuGn_05', 'PuBuGn_06', 'PuBuGn_07', 'PuBuGn_08', 'PuBuGn_09', 'PuBu_03', 'PuBu_04', 'PuBu_05', 'PuBu_06', 'PuBu_07', 'PuBu_08', 'PuBu_09', 'PuOr_03', 'PuOr_04', 'PuOr_05', 'PuOr_06', 'PuOr_07', 'PuOr_08', 'PuOr_09', 'PuOr_10', 'PuOr_11', 'PuRd_03', 'PuRd_04', 'PuRd_05', 'PuRd_06', 'PuRd_07', 'PuRd_08', 'PuRd_09', 'Purples_03', 'Purples_04', 'Purples_05', 'Purples_06', 'Purples_07', 'Purples_08', 'Purples_09', 'RdBu_03', 'RdBu_04', 'RdBu_05', 'RdBu_06', 'RdBu_07', 'RdBu_08', 'RdBu_09', 'RdBu_10', 'RdBu_11', 'RdGy_03', 'RdGy_04', 'RdGy_05', 'RdGy_06', 'RdGy_07', 'RdGy_08', 'RdGy_09', 'RdGy_10', 'RdGy_11', 'RdPu_03', 'RdPu_04', 'RdPu_05', 'RdPu_06', 'RdPu_07', 'RdPu_08', 'RdPu_09', 'RdYlBu_03', 'RdYlBu_04', 'RdYlBu_05', 'RdYlBu_06', 'RdYlBu_07', 'RdYlBu_08', 'RdYlBu_09', 'RdYlBu_10', 'RdYlBu_11', 'RdYlGn_03', 'RdYlGn_04', 'RdYlGn_05', 'RdYlGn_06', 'RdYlGn_07', 'RdYlGn_08', 'RdYlGn_09', 'RdYlGn_10', 'RdYlGn_11', 'Reds_03', 'Reds_04', 'Reds_05', 'Reds_06', 'Reds_07', 'Reds_08', 'Reds_09', 'Set1_03', 'Set1_04', 'Set1_05', 'Set1_06', 'Set1_07', 'Set1_08', 'Set1_09', 'Set2_03', 'Set2_04', 'Set2_05', 'Set2_06', 'Set2_07', 'Set2_08', 'Set3_03', 'Set3_04', 'Set3_05', 'Set3_06', 'Set3_07', 'Set3_08', 'Set3_09', 'Set3_10', 'Set3_11', 'Set3_12', 'Spectral_03', 'Spectral_04', 'Spectral_05', 'Spectral_06', 'Spectral_07', 'Spectral_08', 'Spectral_09', 'Spectral_10', 'Spectral_11', 'YlGnBu_03', 'YlGnBu_04', 'YlGnBu_05', 'YlGnBu_06', 'YlGnBu_07', 'YlGnBu_08', 'YlGnBu_09', 'YlGn_03', 'YlGn_04', 'YlGn_05', 'YlGn_06', 'YlGn_07', 'YlGn_08', 'YlGn_09', 'YlOrBr_03', 'YlOrBr_04', 'YlOrBr_05', 'YlOrBr_06', 'YlOrBr_07', 'YlOrBr_08', 'YlOrBr_09', 'YlOrRd_03', 'YlOrRd_04', 'YlOrRd_05', 'YlOrRd_06', 'YlOrRd_07', 'YlOrRd_08', 'YlOrRd_09', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_colormaps', '_repr_html_', '_schemes', 'viridis']
iledefrancemap = folium.Map(location=[48.8566, 2.3522], zoom_start=9.5)
iledefrancemap
#create a df with each ile de france department
#create a last 10 years df for paris
monthsoflastdecade = ['_2012_01', '_2012_02', '_2012_03', '_2012_04', '_2012_05', '_2012_06', '_2012_07', '_2012_08', '_2012_09', '_2012_10', '_2012_11', '_2012_12', '_2013_01', '_2013_02', '_2013_03', '_2013_04', '_2013_05', '_2013_06', '_2013_07', '_2013_08', '_2013_09', '_2013_10', '_2013_11', '_2013_12', '_2014_01', '_2014_02', '_2014_03', '_2014_04', '_2014_05', '_2014_06', '_2014_07', '_2014_08', '_2014_09', '_2014_10', '_2014_11', '_2014_12', '_2015_01', '_2015_02', '_2015_03', '_2015_04', '_2015_05', '_2015_06', '_2015_07', '_2015_08', '_2015_09', '_2015_10', '_2015_11', '_2015_12', '_2016_01', '_2016_02', '_2016_03', '_2016_04', '_2016_05', '_2016_06', '_2016_07', '_2016_08', '_2016_09', '_2016_10', '_2016_11', '_2016_12', '_2017_01', '_2017_02', '_2017_03', '_2017_04', '_2017_05', '_2017_06', '_2017_07', '_2017_08', '_2017_09', '_2017_10', '_2017_11', '_2017_12', '_2018_01', '_2018_02', '_2018_03', '_2018_04', '_2018_05', '_2018_06', '_2018_07', '_2018_08', '_2018_09', '_2018_10', '_2018_11', '_2018_12', '_2019_01', '_2019_02', '_2019_03', '_2019_04', '_2019_05', '_2019_06', '_2019_07', '_2019_08', '_2019_09', '_2019_10', '_2019_11', '_2019_12', '_2020_01', '_2020_02', '_2020_03', '_2020_04', '_2020_05', '_2020_06', '_2020_07', '_2020_08', '_2020_09', '_2020_10', '_2020_11', '_2020_12', '_2021_01', '_2021_02', '_2021_03', '_2021_04', '_2021_05', '_2021_06', '_2021_07', '_2021_08', '_2021_09', '_2021_10', '_2021_11', '_2021_12', '_2022_01', '_2022_02', '_2022_03', '_2022_04', '_2022_05', '_2022_06', '_2022_07', '_2022_08']
sumofdecade = 0
#summing months columns
for month in monthsoflastdecade:
sumofdecade = sumofdecade + df_paris[month] + df_seineetmarne[month] + df_valdoise[month] + df_yvelines[month] + df_essonne[month] + df_hautsdeseine[month] + df_seinesaintdenis[month] + df_valdemarne[month]
#sumaugust = df_paris[august2022] + df_seineetmarne[august2022] + df_valdoise[august2022] + df_yvelines[august2022] + df_essonne[august2022] + df_hautsdeseine[august2022] + df_seinesaintdenis[august2022] + df_valdemarne[august2022]
print(sumofdecade)
0 130
1 47
2 1413
3 285
4 6650
...
102 5706
103 3527
104 2363
105 86449
106 352372
Length: 107, dtype: int64
import pandas as pd
# create a list of dictionaries containing department name and code
idf_departments = [
{'name': 'Paris', 'code': '75'},
{'name': 'Seine-et-Marne', 'code': '77'},
{'name': 'Yvelines', 'code': '78'},
{'name': 'Essonne', 'code': '91'},
{'name': 'Hauts-de-Seine', 'code': '92'},
{'name': 'Seine-Saint-Denis', 'code': '93'},
{'name': 'Val-de-Marne', 'code': '94'},
{'name': 'Val-d\'Oise', 'code': '95'}
]
# create the DataFrame from the list of dictionaries
idf_df = pd.DataFrame(idf_departments)
# display the resulting DataFrame
print(idf_df)
name code 0 Paris 75 1 Seine-et-Marne 77 2 Yvelines 78 3 Essonne 91 4 Hauts-de-Seine 92 5 Seine-Saint-Denis 93 6 Val-de-Marne 94 7 Val-d'Oise 95
#getting values of number of crimes in each ile de france dept in the last 10 years
sumparisdecade = 0
sumseineetmarnedecade = 0
sumyvelinesdecade = 0
sumessonnedecade = 0
sumhautsdeseinedecade = 0
sumseinesaintdenisdecade = 0
sumvaldemarnedecade = 0
sumvaldoisedecade = 0
for month in monthsoflastdecade:
sumparisdecade = sumparisdecade + df_paris[month].sum()
sumseineetmarnedecade = sumseineetmarnedecade + df_seineetmarne[month].sum()
sumyvelinesdecade = sumyvelinesdecade + df_yvelines[month].sum()
sumessonnedecade = sumessonnedecade + df_essonne[month].sum()
sumhautsdeseinedecade = sumhautsdeseinedecade + df_hautsdeseine[month].sum()
sumseinesaintdenisdecade = sumseinesaintdenisdecade + df_seinesaintdenis[month].sum()
sumvaldemarnedecade = sumvaldemarnedecade + df_valdemarne[month].sum()
sumvaldoisedecade = sumvaldoisedecade + df_valdoise[month].sum()
print(sumparisdecade)
2877743
idf_df['Nombre de delits derniere decennie'] = [sumparisdecade,
sumseineetmarnedecade,
sumyvelinesdecade,
sumessonnedecade,
sumhautsdeseinedecade,
sumseinesaintdenisdecade,
sumvaldemarnedecade,
sumvaldoisedecade]
idf_df
| name | code | Nombre de delits derniere decennie | |
|---|---|---|---|
| 0 | Paris | 75 | 2877743 |
| 1 | Seine-et-Marne | 77 | 868145 |
| 2 | Yvelines | 78 | 863274 |
| 3 | Essonne | 91 | 751202 |
| 4 | Hauts-de-Seine | 92 | 1162398 |
| 5 | Seine-Saint-Denis | 93 | 1520118 |
| 6 | Val-de-Marne | 94 | 976027 |
| 7 | Val-d'Oise | 95 | 885020 |
# Create a dictionary to map department codes to latitude and longitude
coord_dict = {'75': (48.8566, 2.3522),
'77': (48.5394, 2.6556),
'78': (48.8155, 1.728),
'91': (48.5287, 2.4439),
'92': (48.8966, 2.257),
'93': (48.9135, 2.4844),
'94': (48.7775, 2.4397),
'95': (49.0541, 2.1459)}
# Map department codes to latitude and longitude using the dictionary
idf_df['latitude'] = idf_df['code'].map(lambda x: coord_dict[x][0])
idf_df['longitude'] = idf_df['code'].map(lambda x: coord_dict[x][1])
idf_df
| name | code | Nombre de delits derniere decennie | latitude | longitude | |
|---|---|---|---|---|---|
| 0 | Paris | 75 | 2877743 | 48.8566 | 2.3522 |
| 1 | Seine-et-Marne | 77 | 868145 | 48.5394 | 2.6556 |
| 2 | Yvelines | 78 | 863274 | 48.8155 | 1.7280 |
| 3 | Essonne | 91 | 751202 | 48.5287 | 2.4439 |
| 4 | Hauts-de-Seine | 92 | 1162398 | 48.8966 | 2.2570 |
| 5 | Seine-Saint-Denis | 93 | 1520118 | 48.9135 | 2.4844 |
| 6 | Val-de-Marne | 94 | 976027 | 48.7775 | 2.4397 |
| 7 | Val-d'Oise | 95 | 885020 | 49.0541 | 2.1459 |
import pandas as pd
import folium
import requests
from folium.plugins import HeatMap
from branca.colormap import linear
# Load the data
data = idf_df.reset_index()
url = 'https://france-geojson.gregoiredavid.fr/repo/departements.geojson'
response = requests.get(url)
datajs = response.json()
# Create a colormap
colormap = linear.Reds_05.scale(
data["Nombre de delits derniere decennie"].min(),
data["Nombre de delits derniere decennie"].max())
def style_function(feature):
code = feature['properties']['code']
row = data[data['code'] == code]
if not row.empty:
color = colormap(row.iloc[0]['Nombre de delits derniere decennie'])
return {
'fillColor': color,
'fillOpacity': 0.75,
'color': 'grey',
'weight': 5,
'dashArray': '5, 5'
}
else:
return {
'fillColor': 'white',
'color': 'grey',
'weight': 2,
'dashArray': '5, 5'
}
# Create the map
m = folium.Map(location=[48.8566, 2.3522], zoom_start=8.5)
# Add the GeoJSON layer
folium.GeoJson(datajs, name='geojson', style_function=style_function).add_to(m)
# add the title as an HTML object and bind it to the map
title_html = '''
<h4 align="center" style="font-size:20px"><b>Concentration des délits en ile de france durant la derniere decennie </b></h4>
'''
m.get_root().html.add_child(folium.Element(title_html))
# Add the colormap to the map
colormap.caption = "Delits derniere decennie"
colormap.add_to(m)
# Display the final map
m